From b67ffe96504bcf5c04a8413c94069385007d568a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 16 Jul 2020 15:16:30 +0200 Subject: [PATCH] sortlistmodel: Test that the model is stable Stability is measured relative to the child model, not relative to the previous sorter. --- testsuite/gtk/sortlistmodel.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/testsuite/gtk/sortlistmodel.c b/testsuite/gtk/sortlistmodel.c index e7a3004d9d..cffabd9baf 100644 --- a/testsuite/gtk/sortlistmodel.c +++ b/testsuite/gtk/sortlistmodel.c @@ -394,6 +394,28 @@ test_remove_items (void) g_object_unref (sort); } +static void +test_stability (void) +{ + GtkSortListModel *sort; + GListStore *store; + GtkSorter *sorter; + + store = new_store ((guint[]) { 11, 31, 21, 1, 0 }); + sort = new_model (store); + assert_model (sort, "1 11 21 31"); + assert_changes (sort, ""); + + sorter = gtk_custom_sorter_new (compare_modulo, GUINT_TO_POINTER (5), NULL); + gtk_sort_list_model_set_sorter (sort, sorter); + g_object_unref (sorter); + assert_model (sort, "11 31 21 1"); + assert_changes (sort, "0-4+4"); + + g_object_unref (store); + g_object_unref (sort); +} + int main (int argc, char *argv[]) { @@ -411,6 +433,7 @@ main (int argc, char *argv[]) g_test_add_func ("/sortlistmodel/add_items", test_add_items); g_test_add_func ("/sortlistmodel/remove_items", test_remove_items); #endif + g_test_add_func ("/sortlistmodel/stability", test_stability); return g_test_run (); } -- 2.30.2